#pragma once

#include <semaphore.h>

class Sem
{

    static const int defaultNumber = 1;
    
public:

    Sem(int semNumber = defaultNumber)
    {
        sem_init(&_sem, 0, semNumber);
    }

    void wait()
    {
        sem_wait(&_sem);
    }

    void post()
    {
        sem_post(&_sem);
    }

    ~Sem()
    {
        sem_destroy(&_sem);
    }

private:

    sem_t _sem;
};
